<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateAppProjectsTable extends Migration {
    /**
     * Run the migrations.
     * @return void
     */
    public function up() {
        Schema::create('app_projects', function (Blueprint $table) {
            $table->increments('id')->comment('表备注：小程序/公众号项目表');
            $table->string('name')->comment('名称');
            $table->string('head_img')->default('')->comment('项目图标');
    
            $table->integer('app_project_type_id')->default(0)->comment('项目类型id');
            $table->integer('mpt_id')->default(0)->comment('本地微信模板信息表id');
            $table->integer('user_id')->default(0)->comment('项目添加者id');
            
            $table->json('ext_json')->comment('小程序的自定义配置模板json格式');
            $table->integer('type')->default(1)->comment('程序类型，1:小程序,2:公众号');
            $table->string('remark')->default('')->comment('备注');
            $table->json('server_domain')->comment('小程序的设置服务器域名');
            $table->json('webviewdomain')->comment('小程序的设置业务域名');
            $table->json('wx_submit_audit_item_list')->comment('审核项列表');
            $table->tinyInteger('wx_submit_audit_item_rely_mpt')->default(1)->comment('提交审核是否使用模板审核项列表，0：否，1：是');
            $table->tinyInteger('status')->default(1)->comment('状态，1：启用，0：禁用');
            $table->tinyInteger('switch_audit_success_release')->default(0)->comment('审核通过自动发布已通过审核的小程序，1：启用，0：禁用');
            $table->tinyInteger('last_audit_status')->default(-1)->comment('最新一次提审单的审核状态,-1:无状态,0:审核成功,1:审核被拒绝,2:审核中,3:已撤回,4:审核延后,');
    
            //授权返回信息记录
            $table->string('open_appid')->default('')->comment('开放平台appid');
    
            $table->dateTime('auth_time')->nullable()->default(null)->comment('授权时间');
            $table->tinyInteger('auth_status')->default(0)->comment('授权状态，0：未授权，1：已授权');
    
            $table->string('wx_authorizer_appid',190)->default('')->comment('授权方 appid');
            $table->string('wx_authorizer_refresh_token')->default('')->comment('接口调用令牌刷新令牌');
    
            //授权后小程序信息获取
            $table->string('wx_nick_name', 80)->default('')->comment('微信小程序 微信登记时显示的名称');
            $table->string('wx_head_img')->default('')->comment('微信logo头像');
            $table->tinyInteger('wx_verify_type_info_id')->default(-1)->comment('微信小程序认证类型，-1：未认证 0：微信认证');
            $table->string('wx_user_name', 40)->default('')->comment('微信小程序 原始 ID');
            $table->string('wx_principal_name', 60)->default('')->comment('小程序 主体名称');
            $table->string('wx_signature')->default('')->comment('微信账号帐号介绍');
            $table->string('wx_qrcode_url')->default('')->comment('微信二维码图片的 URL');
            
            //预留归属公司信息
            $table->integer('company_id')->default(0)->comment('公司id');
    
            $table->dateTime('created_at')->nullable()->default(null);
            $table->dateTime('updated_at')->nullable()->default(null);
            $table->tinyInteger('deleted')->default(0)->comment('是否删除,1:是,0:否');
            
            $table->index(['mpt_id']);
            $table->index(['wx_authorizer_appid']);
            $table->index(['user_id']);
        });
    }
    
    /**
     * Reverse the migrations.
     * @return void
     */
    public function down() {
        Schema::dropIfExists('app_projects');
    }
}
